package com.swanclouds.redfish.managers.domain.Oem.HuaWei;

import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.annotation.JsonRootName;
import com.swanclouds.model.common.redfish.Oem;
import com.swanclouds.redfish.common.redfish.NetworkPort;
import java.util.List;

/**
 * @author 李文强
 * description
 */

@JsonRootName("Oem")
public class HuaweiEthernetInterfacesOem implements Oem {

    @JsonProperty("Huawei")
    private HuaweiEthernetInterfacesOem.HuaweiUpdateEthernetInterfaces huawei;

    @JsonRootName("Huawei")
    public static class HuaweiUpdateEthernetInterfaces {

      @JsonProperty("IpVersion")
      private String ipVersion;

      @JsonProperty("NetworkPortMode")
      private String networkPortMode;

      @JsonProperty("ManagementNetworkPort")
      private NetworkPort managementNetworkPort;

      @JsonProperty("AdaptivePort")
      private List<NetworkPort> adaptivePort;

      @JsonProperty("DNSAddressOrigin")
      private String dnsAddressOrigin;

        public HuaweiEthernetInterfacesOem.HuaweiUpdateEthernetInterfaces ipVersion(String ipVersion) {
            this.ipVersion = ipVersion;
            return this;
        }

        public HuaweiEthernetInterfacesOem.HuaweiUpdateEthernetInterfaces networkPortMode(String networkPortMode) {
            this.networkPortMode = networkPortMode;
            return this;
        }

        public HuaweiEthernetInterfacesOem.HuaweiUpdateEthernetInterfaces managementNetworkPort(NetworkPort managementNetworkPort) {
            this.managementNetworkPort = managementNetworkPort;
            return this;
        }

        public HuaweiEthernetInterfacesOem.HuaweiUpdateEthernetInterfaces adaptivePort(List<NetworkPort> adaptivePort) {
            this.adaptivePort = adaptivePort;
            return this;
        }

        public HuaweiEthernetInterfacesOem.HuaweiUpdateEthernetInterfaces dnsAddressOrigin(String dnsAddressOrigin) {
            this.dnsAddressOrigin = dnsAddressOrigin;
            return this;
        }

        private HuaweiUpdateEthernetInterfaces() {}

       public static HuaweiEthernetInterfacesOem.HuaweiUpdateEthernetInterfaces update(){
            return new HuaweiEthernetInterfacesOem.HuaweiUpdateEthernetInterfaces();
       }
    }

    public HuaweiEthernetInterfacesOem name(HuaweiEthernetInterfacesOem.HuaweiUpdateEthernetInterfaces name) {
        this.huawei = name;
        return this;
    }

    public static HuaweiEthernetInterfacesOem update() {
        return new HuaweiEthernetInterfacesOem();
    }
}
